"""
免费数据源集成
无需申请API密钥，直接使用
"""
import requests
import json
from datetime import datetime, timedelta

class FreeDataSources:
    def __init__(self):
        self.railway_api = RailwayAPI()
    
    def get_comprehensive_routes(self, origin, destination, date=None):
        """获取综合路线信息"""
        routes = []
        
        # 1. 获取火车信息
        trains = self.railway_api.get_train_info(origin, destination, date)
        routes.extend(trains)
        
        # 2. 获取飞机信息（使用免费API）
        flights = self.get_flight_info_free(origin, destination)
        routes.extend(flights)
        
        # 3. 获取汽车信息（使用免费API）
        buses = self.get_bus_info_free(origin, destination)
        routes.extend(buses)
        
        return routes
    
    def get_flight_info_free(self, origin, destination):
        """获取免费飞机信息"""
        # 使用免费的航班查询API
        try:
            # 这里可以使用一些免费的航班API
            # 比如：https://api.aviationstack.com/ (有免费额度)
            # 或者使用模拟数据
            return self.get_mock_flight_data(origin, destination)
        except:
            return self.get_mock_flight_data(origin, destination)
    
    def get_bus_info_free(self, origin, destination):
        """获取免费汽车信息"""
        # 使用免费的汽车票API
        try:
            # 这里可以使用一些免费的汽车票API
            # 或者使用模拟数据
            return self.get_mock_bus_data(origin, destination)
        except:
            return self.get_mock_bus_data(origin, destination)
    
    def get_mock_flight_data(self, origin, destination):
        """模拟飞机数据"""
        return [{
            'type': 'flight',
            'flight_number': 'CA1234',
            'departure_time': '09:30',
            'arrival_time': '12:00',
            'duration': '2.5小时',
            'price': 800,
            'airline': '中国国航',
            'origin': origin,
            'destination': destination
        }]
    
    def get_mock_bus_data(self, origin, destination):
        """模拟汽车数据"""
        return [{
            'type': 'bus',
            'description': f'从{origin}到{destination}的长途汽车',
            'departure_time': '08:00',
            'arrival_time': '16:00',
            'duration': '8小时',
            'price': 200,
            'origin': origin,
            'destination': destination
        }]

# 使用示例
if __name__ == "__main__":
    api = FreeDataSources()
    routes = api.get_comprehensive_routes('北京', '上海')
    print("综合路线信息:", json.dumps(routes, ensure_ascii=False, indent=2))